// child_process.fork() 产生一个新的Node.js进程，并使用建立的IPC通信通道调用指定的模块，该通道允许在父级和子级之间发送消息。


// 主要用fork,就是为了 ipc  但是有的时候  我仅仅就是要拿到子进程的输出，不作别的事

const {fork} = require('child_process');
const path = require('path');

//fork比spawn用起来更方便 提供了ipc的方式
const cp = fork('sum1.js',{ 
    cwd: path.resolve(__dirname,'../worker'),
    // 不希望复用process.stdin,stdout,stderr,而是通过ipc来进行通信
    stdio:[0,1,2,'ipc'] 
})

// ipc通信机制不会停掉
cp.on('message',function(data){
    console.log('儿子给我的数据',data,cp.pid);
    // 关闭子进程,也可以在子进程中操作
    process.nextTick(()=>{
        process.kill(cp.pid); // pid 就是进程的唯一标识 kill 来杀死进程
    })
    cp.send('welcome',function(){})
});

cp.on('exit',function(){
    console.log('exit')
})

